<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2008 XBRL International. All Rights Reserved. -->
<?xml-stylesheet type="text/xsl" href="../stylesheets/functionDefinition.xsl"?>
<function
  xmlns="http://xbrl.org/2008/function"
  xmlns:reg="http://xbrl.org/2008/registry"
  xmlns:xhtml="http://www.w3.org/1999/xhtml"
  xmlns:xfi="http://www.xbrl.org/2008/function/instance" 
  xmlns:xfie="http://www.xbrl.org/2008/function/instance/error" 
  xmlns:xbrli="http://www.xbrl.org/2003/instance" 
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="
  http://xbrl.org/2008/registry ../schemas/registry.xsd
  http://xbrl.org/2008/function ../schemas/function.xsd
  ">

  <lastUpdated moment="2008-01-23T00:00:00" />

  <owners>
    <reg:owner id="geoff">
       <reg:name>Geoff Shuetrim</reg:name>
       <reg:affiliation>Galexy</reg:affiliation>
       <reg:email>geoff@galexy.net</reg:email>
       <reg:assumedOwnership moment="2008-01-30T14:45:00" />
    </reg:owner>
  </owners>

  <summary>
    Obtains a sequence of all the facts that do not have nil values 
    in an XBRL instance.
  </summary>

  <documentation>
  </documentation>

  <signature name="xfi:non-nil-facts-in-instance">
    <input name="root" type="element(xbrli:xbrl)">
      <xhtml:p>
        The function takes the root element of an XBRL instance
        as its only parameter.
      </xhtml:p>
    </input>
    <output type="element()*">
      <xhtml:p>
        The function returns a sequence of non-nil fact elements.
        The data type of each fact element has the appropriate type 
        based on the Post Schema Validation Infoset.
        The sequence is empty if the XBRL instance contains
        no  non-nil facts.
      </xhtml:p>
      <xhtml:p>
        This sequence includes all of the items and tuples in the
        instance including those that are descendants of tuples in
        the XBRL instance, so long as those facts are not nil.
      </xhtml:p>
    </output>
  </signature>

  <conformanceTest xlink:type="simple" xlink:href="90106 xfi.non-nil-facts-in-instance testcase.xml"/>

  <revisions>
    <reg:revision on="2008-08-22T00:00:00" by="geoff">
      <xhtml:p>
        Created the function definition to support fact variable control over
        evaluation to nil facts.
      </xhtml:p>
    </reg:revision>
    <reg:revision on="2008-12-05T00:00:00" by="herm">
      <xhtml:p>
        Added data type sentence.
      </xhtml:p>
    </reg:revision>
  </revisions>

</function>
